function axios({method,url,params,data}){
    //转化为大写
    method=method.toUpperCase()
    //返回值
    return new Promise((resolve,reject)=>{
        //1.创建对象
        const xhr=new XMLHttpRequest();
        //2.初始化 
        //处理params 对象 a=100&b=200
        let str=''
        for(let k in params){  //属性有多少个 就循环多少次 每次的k值不一样
            str+=`${k}=${params[k]}&`
        }  
        str=str.slice(0,-1);  //截取掉最后一位
        xhr.open(method,url+'?'+str);
        //3.发送
        if(method==='POST' ||method ==='PUT' || method==='DELETE')
        {
            //Content-type mine类型设置
            xhr.setRequestHeader('Content-type','application/json');
            //设置请求体
            xhr.send(JSON.stringify(data))
        }
        else{
            xhr.send()
        }
        //设置响应结果的类型为JSON
        xhr.responseType='json'
        //4.处理结果
        xhr.onreadystatechange=function(){
            if(xhr.readyState===4){
                if(xhr.status>=200&&xhr.status<300)
                {
                    //成功的状态
                    resolve({
                        status:xhr.status,
                        message:xhr.statusText,
                        body:xhr.response
                    })
                }
                else
                {
                    reject(new Error('请求失败，失败的状态码为'+xhr.status))
                }
            }
        }
    })
}


/* !!!!还有一个方法封装 */